Random numbers have applications in numerous areas including game playing, statistical sampling, evaluating integral equations, particle transport calculations, and computations in statistical physics, just to name a few. As a result, random number generators (“RNGs”) figure prominently in methods and systems that use random numbers. For example, RNGs are key components of secure systems and are used extensively to generate keys for cryptography. An ideal RNG generates numbers which cannot be predicted in advance, cannot be reliably reproduced, and are distributed according to a uniform distribution. In other words, RNGs ideally generate a sequence of unbiased random numbers. However, many commonly used RNGs either generate sequences of seemingly random numbers or may be susceptible to generating biased sequences of numbers.
RNGs have been implemented in software to generate sequences of seemingly random numbers using formulas and numerical methods. Software-based RNGs are in general formula-based RNGs and are referred to as “pseudorandom number generators” because the formulas allow for prediction and reproduction of a sequence of pseudorandom numbers, provided the same initial parameters are used. A recursive Lehmer pseudorandom number generator (“LPNG”) is an example of a commonly used pseudorandom number generator is given by:xn+1=Axn+C(mod M)where
xn is the nth number of a sequence of random numbers; and
A, C, and M are parameters that can be adjusted to ensure that a sequence of numbers generated by the LPNG appears random.
Typically, M is assigned the word size of a computer employed to compute a sequence of pseudorandom numbers, and x0, the seed, is assigned a prime number. For example, assigning A, C, and M the values 21, 1, and 32 (5 bits), respectively, and assigning x0 the prime number 13, the LPNG generates the following sequence of pseudorandom integers: 13, 18, 27, 24, 25, 14, 7, etc. Alternative approaches may seed a pseudorandom number generator with the time produced by a computer-system clock each time the pseudorandom number generator is initiated. However, even using the time provided by a system clock is not infallible because one may be able to determine the time when the pseudorandom number generator was initiated.
Hardware-based RNGs have also been developed to generate sequences of random numbers based on chaotic fluctuations observed in thermal noise generated by atomic, molecular, and electrical systems. For example, thermal noise generated by an electric current flowing through a resistor can be used as a source of a sequence of random numbers by assigning numbers to the magnitude of voltage equilibrium fluctuations. However, hardware-based RNGs are not always reliable because the systems employed are susceptible to environmental changes. For example, an electric noise-based RNG can be biased by changing the temperature of the system. In addition, the methods typically employed to authenticate the randomness of a sequence generated by a hardware-based RNG are deterministic software-based methods, which can be used to determine whether the sequence is statistically well-behaved but cannot be used to evaluate the true randomness of the sequence. Further, sufficiently powerful data processing systems with appropriate models or algorithms may become able to predict chaotic or thermal processes, even if only for a short time.
Quantum random bit generators (“QRBGs”) are another type of hardware-based RNG. A bit is the most basic unit of information used in computing and information processing and exists in one of two states represented by binary numbers “0” and “1.” QRBGs are based on quantum-mechanical properties of substantially identical quantum systems. A sequence of random numbers can be generated by associating each number with the outcome of a measurement performed on a quantum system. The numbers generated in this manner are truly random because each measurement projects the state of a quantum system onto one of many possible states at the time the measurement is performed, and, according to the standard interpretation of quantum mechanics, no amount of refinement of the measurement methods and measuring devices can overcome the uncertainty in the outcome of a measurement performed on a quantum system. As a result, QRBGs are highly desirable systems for generating sequences of random numbers.
Quantum measurements can be used to generate random bits. For example, a sequence of random bits can be generated by detecting the transmission and reflection of a 45°-polarized photon on a polarizing beamsplitter with two photomultiplier detectors located in the output channels of a polarizing beamsplitter. Each detector has the same probability of registering a detection event, but one cannot predict which detector records the next detection event. By assigning the binary number “0” to a detection at one of the detectors and the binary number “1” to a detection at the other detector, a sequence of random binary numbers can be constructed. A sequence of bits can be used to generate a sequence of random integers. For example, suppose separately transmitting 30 45°-polarized photons to a polarizing beamsplitter generates the following sequence of random bits:                000110101011100101010111100100This sequence can be partitioned into 5-bit words to give a sequence of random base 2 numbers 00011, 01010, 11100, 10101, 01111, and 00100, which can then be translated into a corresponding sequence of random base 10 integers 3, 10, 28, 21, 15, and 4, respectively.        
Although QRBGs appear to offer a convenient method and system for generating a sequence of random numbers, the QRBGs may be susceptible to generating sequences of biased bits by tampering with the photon source. In addition, methods typically employed to authenticate the randomness of bit sequences generated by QRBGs are deterministic software-based methods, which are unreliable for assessing whether or not a sequence of bits is truly random. Physicists, cryptographers, computer scientists, and quantum-information users have recognized a need for QRBGs that can be used to reliably generate sequences of random bits, can be integrated into optoelectronic devices, and can also detect, authenticate, and correct biases in the sequences of random bits using methods that rely on the non-deterministic properties of quantum systems.